package com.yiqi.zhiyuan.feature.mine.contract;

import com.suozhang.framework.framework.BasePresenter;
import com.suozhang.framework.framework.BaseView;
import com.yiqi.zhiyuan.entity.vo.CarVO;

import java.util.List;

import io.reactivex.Observable;

/**
 * @ProjectName: ZhiYuan
 * @Description: java类作用描述
 * @Author: lijuwen
 * @CreateDate: 2019/3/14 10:45
 * @UpdateUser: 更新者
 * @UpdateDate: 2019/3/14 10:45
 * @UpdateRemark: 更新说明
 * @Version: 1.0
 */
public interface CarContract {

    interface Model {


        /**
         * 获取司机车辆
         *
         * @param
         * @return
         */
        Observable<List<CarVO>> doGetDiverCarList();

        /**
         * 删除我的车辆
         *
         * @param
         * @return
         */
        Observable<String> doDeleteCarInDriver(String ids);

        /**
         * 快捷接单设置
         */

        Observable<String> doOrderQuickSetup(Integer driverId);


    }

    interface View extends BaseView {

        /**
         * 获取司机车辆数据成功
         *
         * @param
         */
        void showDiverCarListSuccess(List<CarVO> carVOS);

        /**
         * 获取司机车辆数据失败
         *
         * @param errorMsg
         */
        void showDiverCarListError(String errorMsg);

        void showDiverCarEmpty();
        /**
         * 快捷接单设置成功
         */
        void showOrderQuickSetupSuccess();

        /**
         * 快捷接单设置失败
         */
        void showOrderQuickSetupError(String errorMsg);

        /**
         * 删除车辆成功
         *
         * @param
         */
        void showDeleteCarSuccess();

        /**
         * 删除车辆失败
         *
         * @param errorMsg
         */
        void showDeleteCarError(String errorMsg);


    }

    interface Presenter extends BasePresenter {
        /**
         * 获取司机车辆
         *
         * @param
         */
        void getDiverCarList();

        /**
         * 删除汽车
         */

        void deleteCarInDriver(String ids);


        void orderQuickSetup(Integer driverId);
    }
}
